$NG.AllReady(function (page, { useValuesChange, useDataIndexChange, useUpdateRows, useUpdateRow }) {
  const mstform = $NG.getCmpApi("p_form_equipment_chg");
  const dgrid1 = $NG.getCmpApi("p_form_equipment_chg_d");

  ////////////////////////////////////////////////////////////--init--////////////////////////////////////////////////////////////
  if (mstform) {
    getCntCount("p_form_equipment_chg", "u_cnt_id", () => {
      getCntMInfoByPhid();
      getSbqdDetailByCnt();
    });
    getPtInfoByPhid();
    cntMFilter();
  }
  ////////////////////////////////////////////////////////////--useValuesChange--////////////////////////////////////////////////////////////
  useValuesChange(({ args }) => {
    console.log(`项目监听`, args);
    getPtInfoByPhid();
    getCntCount("p_form_equipment_chg", "u_cnt_id", () => {
      getCntMInfoByPhid();
      getSbqdDetailByCnt();
    });
  }, "p_form_equipment_chg.phid_pc");
  //监听合同
  useValuesChange(({ args }) => {
    console.log(`合同监听`, args);
    getCntMInfoByPhid();
  }, "p_form_equipment_chg_impl.u_cnt_id");
  ////////////////////////////////////////////////////////////--useUpdateRows--////////////////////////////////////////////////////////////
  useUpdateRows(({ args }) => {
    const _arr = args[0];
    _arr.forEach((item) => {
      item.u_bglx = "normal";
    });
    dgrid1.refreshView();
  });
  /**
   * 功能扩展区
   *
   */
  function getPtInfoByPhid() {
    if (mstform.getItem("phid_pc").getValue()) {
      $NG.execServer("getPtInfoByPhid", { phid: mstform.getItem("phid_pc").getValue() }, function (res) {
        const datas = JSON.parse(res.data)[0].extendObjects;
        console.log(datas);
        $NG.updateState((updater) => {
          updater.data.p_form_equipment_chg.setProps({
            //项目编码
            u_pc_no: datas.pc_no,
            //项目金额
            approx_contract_fc: datas.approx_contract_fc,
            //计划开工日期
            start_date: datas.start_date,
            //计划完工日期
            end_date: datas.end_date,
            //售前顾问
            u_sqgw: { value: datas.user_sqgw_phid, label: datas.user_sqgw_name },
            //项目经理
            u_project_manager: { value: datas.project_manager_phid, label: datas.project_manager_name },
            //事业部
            u_division: { value: datas.division_phid, label: datas.division_name },
            //组织
            phid_org_phid: { value: datas.phid_org_phid, label: datas.phid_org_name },
            //区域中心
            u_regional_center: { value: datas.regional_center_phid, label: datas.regional_center_name },
            //产品线
            u_product_line: { value: datas.midwife_phid, label: datas.midwife_name },
            //客户名称
            customer: { value: datas.customer_id, label: datas.customer_name },
            //部门
            u_dept: { value: datas.dept_phid, label: datas.dept_name },
            //项目类型
            u_pc_type: { value: datas.type_phid, label: datas.type_name },
            //项目预算组织编码
            budget_org_code: datas.budget_org_no,
            //项目预算组织
            budget_org_phid: { value: datas.budget_org_phid, label: datas.budget_org_name },
          });
        });
      });
    }
  }

  function cntMFilter() {
    $NG.updateUI((updater, state) => {
      updater.fieldSetForm.p_form_equipment_chg.u_cnt_id.setProps({
        onBeforeOpen: async () => {
          var phid_pc = mstform.getItem("phid_pc").getValue();
          if (!phid_pc) {
            $NG.alert("请先选择项目");
            return false;
          } else {
            return true;
          }
        },
        ...(!!mstform.getItem("phid_pc").getValue() && {
          clientSqlFilter: {
            bill_type: 1,
            phid_pc: mstform.getItem("phid_pc").getValue(),
          },
        }),
      });
    });
  }

  function getCntMInfoByPhid(params) {
    $NG.execServer("getCntMInfoByPhid", { phid: mstform.getItem("u_cnt_id").getValue() }, function (res) {
      const datas = JSON.parse(res.data)[0].extendObjects;
      console.log(datas);
      $NG.updateState((updater) => {
        updater.data.p_form_equipment_chg.setProps({
          u_cnt_no: datas.pcm_no, //合同编号
          start_dt: datas.start_dt, //约定开工时间
          end_dt: datas.end_dt, //约定完工时间
          cnt_sum_vat_fc: datas.cnt_sum_vat_fc, //合同价税合计
          //产品线
          user_product_line: { value: datas.midwife_phid, label: datas.midwife_name },
          //合同类型
          u_cnt_type: { value: datas.pct_id, label: datas.pct_name },
          //甲方单位
          u_customer: { value: datas.customer_id, label: datas.customer_name },
          //乙方单位
          supply: { value: datas.supply_id, label: datas.supply_name },
          //发票类型
          u_invoice_type: { value: datas.invoice_type_phid, label: datas.invoice_type_name },
          //购方信息（客户信息）（收票单位信息）
          //单位名称
          tick_id: { value: datas.tick_id, label: datas.tick_name },
          //单位编码
          tick_no: datas.tick_no,
          //社会信用代码
          tick_unisocialcredit: datas.tick_unisocialcredit,
          //单位地址
          tick_taxaddress: datas.tick_taxaddress,
          //联系电话
          tick_taxtelephone: datas.tick_taxtelephone,
          //银行名称
          tick_taxbankid: { value: datas.tick_taxbankid, label: datas.tick_taxbankname },
          //银行账号
          tick_taxaccountno: datas.tick_taxaccountno,
          //销方信息（供应商信息）（开票单位信息）
          //单位名称
          inv_id: { value: datas.inv_id, label: datas.inv_name },
          //单位编码
          inv_no: datas.inv_no,
          //社会信用代码
          inv_unisocialcredit: datas.inv_unisocialcredit,
          //单位地址
          inv_taxaddress: datas.inv_taxaddress,
          //联系电话
          inv_taxtelephone: datas.inv_taxtelephone,
          //银行名称
          inv_taxbankid: { value: datas.inv_taxbankid, label: datas.inv_taxbankname },
          //银行账号
          inv_taxaccountno: datas.inv_taxaccountno,
        });
      });
    });
  }

  // 获取设备清单明细
  function getSbqdDetailByCnt() {
    if (!mstform.getItem("u_cnt_id").getValue()) return;
    $NG.execServer("getSbqdDetailByCnt", { cnt: mstform.getItem("u_cnt_id").getValue() }, function (res) {
      console.log("获取明细", res);
      if (res.count == 0) return;
      //明细数组
      const _data = JSON.parse(res.data);
      console.log(_data);
      const _tempArr = [];
      _data.forEach((items) => {
        const item = items.extendObjects;
        _tempArr.push({
          u_revenue_type: item.u_revenue_type,
          u_eq_item_name:item.u_equipment_list_name,
          u_revenue_type_EXName: item.ur_exname,
          u_pc_subitem_category: item.u_pc_subitem_category,
          u_eq_item_no: item.u_equipment_list_no,
          u_cnt_item_no: item.u_cnt_item_no,
          u_cnt_item: item.u_cnt_item,
          u_cnt_item_EXName: item.u_cnt_item_exname,
          u_spec: item.u_tech_params,
          u_brand: item.u_brand,
          u_brand_EXName: item.u_brand_exname,
          u_is_self: item.u_is_self,
          u_is_standardized: item.u_is_standardized_tech_params,
          u_msunit: item.u_msunit,
          u_msunit_EXName: item.u_msunit_exname,
          u_qty: item.u_qty,
          u_cnt_prc: item.u_cnt_prc,
          u_cnt_amt_vat: item.u_cnt_amt_vat, //合同含税金额
          u_cnt_amt: item.u_cnt_amt,
          u_sub_name:item.u_sub_name,
          u_sub_spec: item.u_sub_ggxh,
          u_sub_item_category: item.u_sub_item_category,
          u_sub_item_category_EXName: item.u_sub_item_category_exname,
          u_sub_guide_prc: item.u_fwgczdj,
          u_sub_prc: item.u_sub_prc,
          u_sub_tax_rate: item.u_sub_tax_rate,
          u_sub_cost: item.u_sub_cost,
          u_sub_cost_vat: item.u_sub_cost_vat,
          u_sub_item:item.u_sub_item,
          u_sub_item_EXName:item.u_sub_item_exname,
          u_pur_name: item.u_pur_name, //拟采购项名称
          u_pur_spec: item.u_pur_ggxh, // 拟采购规格
          u_pur_item_category: item.u_pur_item_category,
          u_pur_item_category_EXName: item.u_pur_item_category_exname,
          u_pur_guide_prc: item.u_cgzdj,
          u_pur_prc: item.u_pur_prc,
          u_pur_tax_rate: item.u_pur_tax_rate,
          u_pur_cost: item.u_pur_cost,
          u_pur_cost_vat: item.u_pur_cost_vat,
          u_pur_item:item.u_pur_item,
          u_pur_item_EXName:item.u_pur_item_exname,
          u_self_name: item.u_self_name, //拟自制名称
          u_self_spec: item.u_self_ggxh,
          u_self_item_category: item.u_self_item_category,
          u_self_item_category_EXName: item.u_self_item_category_exname,
          u_self_item:item.u_self_item,
          u_self_item_EXName:item.u_self_item_exname,
          u_self_prc: item.u_self_prc,
          u_self_tax_rate: item.u_self_tax_rate,
          u_self_cost: item.u_self_cost,
          u_self_cost_vat: item.u_self_cost_vat,
        });
      });
      dgrid1.clearRows().then(() => {
        dgrid1.addRows(_tempArr);
        dgrid1.refreshView();
      });
    });
  }

  //获取合同数量
  function getCntCount(table, key, fun) {
    if (!$NG.getCmpApi(table).getItem("phid_pc").getValue()) return;
    $NG.execServer("getCntCount", { type: 1, phid_pc: $NG.getCmpApi(table).getItem("phid_pc").getValue() }, (res) => {
      console.log(res, "count");
      switch (res.count) {
        case 0:
          return;
        case 1:
          const datas = JSON.parse(res.data)[0].extendObjects;
          const temp_map = {};
          temp_map[key] = datas.phid;
          temp_map[`${key}_EXName`] = datas.bill_name;
          $NG.updateState((updater) => {
            updater.data[table].setProps({
              ...temp_map,
            });
            setTimeout(() => {
              if (fun) {
                fun();
              }
            }, 200);
          });
      }
    });
  }
});
